#ifndef _ORDER_HH_
#define _ORDER_HH_
#include "State.h"
#include "Planif.hh"
#include <list>
#include <algorithm>
#include <ostream>


extern CacheMap torus;

/// List of individual options
struct Order : public std::vector<Option>
{

  /// Class builder
  Order(void)
  {
    ASSERT(torus.size);
  }
 
  
  void reset(void)
  {
    clear();
  }
  
  void proposeAction(uLocation from, uLocation to, double w);

  void execute(State & state);

  std::ostream& dump(std::ostream & os);

  std::ostream & dump_plan(std::ostream & os, action_plan_t & plan);

};

#endif /* _ORDER_HH_ */
